package org.example.study.liaoxuefeng;

import org.testng.annotations.Test;

/**
 * @author: 默苍璃
 * @date: 2023-05-22 17:12
 * <p>
 * Java线程的状态
 */
public class ThreadStates {


    /**
     * 一个线程还可以等待另一个线程直到其运行结束。例如，main线程在启动t线程后，可以通过t.join()等待t线程结束后再继续运行：
     */
    @Test
    public void test1() throws InterruptedException {
        Thread t = new Thread(() -> {
            System.out.println("hello");
        });
        System.out.println("start");
        t.start();
        t.join();
        System.out.println("end");
    }


    /**
     * 如果t线程已经结束，对实例t调用join()会立刻返回：
     */
    @Test
    public void test2() throws InterruptedException {
        Thread t = new Thread(() -> {
            System.out.println("hello");
        });
        System.out.println("start");
        t.start();
        Thread.sleep(100);
        t.join();
        System.out.println("end");
    }


}
